package com.zebra.gateway.processor;

import com.zebra.gateway.protocol.GatewayCommand;
import com.zebra.remoting.protocol.RemotingCommand;
import io.netty.channel.ChannelHandlerContext;

import java.util.concurrent.Executor;

/**
 * Remoting processor processes remoting commands.
 * @author sk
 */
public interface GatewayProcessor {

    /**
     * Process the remoting command.
     * @param ctx
     * @param msg
     * @param defaultExecutor
     * @throws Exception
     */
    void process(ChannelHandlerContext ctx, GatewayCommand msg, Executor defaultExecutor) throws Exception;

}
